import datetime
import random
import pyecharts.options as opts
from pyecharts.charts import Calendar

begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
# * 按时间顺序生成日期和数值
data = [
    [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
    for i in range((end - begin).days + 1)
]
# print(data)
calendar = Calendar(init_opts=opts.InitOpts(width="1600px", height="1000px"))
calendar.add(
    series_name="",
    yaxis_data=data,
    calendar_opts=opts.CalendarOpts(
        pos_top="120",
        pos_left="30",
        pos_right="30",
        range_="2017",
        yearlabel_opts=opts.CalendarYearLabelOpts(is_show=True),
    ),
)
calendar.set_global_opts(
    title_opts=opts.TitleOpts(
        pos_top="30", pos_left="center", title="2017年步数情况"),
    visualmap_opts=opts.VisualMapOpts(
        max_=20000, min_=500, orient="horizontal", is_piecewise=True,
        pos_top="270px", pos_left="100px",
    ),
)
calendar.render(path=r"./Exercise/2021-01-23/calendar01.html")
